/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

SSL Certificate Manager
SSL数字证书信息管理接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef SslApiModel_h
#define SslApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKSsl/SslModel.h>


@interface SslUpdateCertNameResult : NSObject
/// 状态码
 @property (strong,nonatomic,nonnull)  NSNumber*  code;
/// 消息
 @property (strong,nonatomic,nonnull)  NSString*  message;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCode:(NSNumber*) code

    message:(NSString*)message;
@end

@interface SslDescribeCertRequest:JDCloudRequest

/// 第几页，从1开始计数
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 每页显示的数目
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 证书 Id
@property (strong,nonatomic,nonnull)  NSString*  certId;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
certId:(NSString*)certId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
certId:(NSString*)certId;

@end

@interface SslDownloadCertRequest:JDCloudRequest

/// 证书应用的服务器类型(Nginx Apache Tomcat IIS Other)
@property (strong,nonatomic,nonnull)  NSString*  serverType;
/// 证书 Id
@property (strong,nonatomic,nonnull)  NSString*  certId;
-(id) initWithRegion:(NSString *)regionId
serverType:(NSString*)serverType
certId:(NSString*)certId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
serverType:(NSString*)serverType
certId:(NSString*)certId;

@end

@interface SslUpdateCertResult : NSObject
/// 待更新证书ID
 @property (strong,nonatomic,nonnull)  NSString*  certId;
/// 对私钥文件使用sha256算法计算的摘要信息
 @property (strong,nonatomic,nonnull)  NSString*  digest;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCertId:(NSString*) certId

    digest:(NSString*)digest;
@end

@interface SslDeleteCertsResult : NSObject
/// 状态码
 @property (strong,nonatomic,nonnull)  NSNumber*  code;
/// 消息
 @property (strong,nonatomic,nonnull)  NSString*  message;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCode:(NSNumber*) code

    message:(NSString*)message;
@end

@interface SslUploadCertResult : NSObject
/// CertId
 @property (strong,nonatomic,nonnull)  NSString*  certId;
/// 对私钥文件使用sha256算法计算的摘要信息
 @property (strong,nonatomic,nonnull)  NSString*  digest;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCertId:(NSString*) certId

    digest:(NSString*)digest;
@end

@interface SslUpdateCertRequest:JDCloudRequest

/// 证书ID
@property (strong,nonatomic,nonnull)  NSString*  certId;
/// 私钥
@property (strong,nonatomic,nonnull)  NSString*  keyFile;
/// 证书
@property (strong,nonatomic,nonnull)  NSString*  certFile;
-(id) initWithRegion:(NSString *)regionId
certId:(NSString*)certId
keyFile:(NSString*)keyFile
certFile:(NSString*)certFile;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
certId:(NSString*)certId
keyFile:(NSString*)keyFile
certFile:(NSString*)certFile;

@end

@interface SslUpdateCertNameRequest:JDCloudRequest

/// 证书Id
@property (strong,nonatomic,nonnull)  NSString*  certId;
/// 证书名称
@property (strong,nonatomic,nonnull)  NSString*  certName;
-(id) initWithRegion:(NSString *)regionId
certId:(NSString*)certId
certName:(NSString*)certName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
certId:(NSString*)certId
certName:(NSString*)certName;

@end

@interface SslUploadCertRequest:JDCloudRequest

/// 证书名称
@property (strong,nonatomic,nonnull)  NSString*  certName;
/// 私钥
@property (strong,nonatomic,nonnull)  NSString*  keyFile;
/// 证书
@property (strong,nonatomic,nonnull)  NSString*  certFile;
/// 证书别名
@property (strong,nonatomic,nonnull)  NSString*  aliasName;
-(id) initWithRegion:(NSString *)regionId
certName:(NSString*)certName
keyFile:(NSString*)keyFile
certFile:(NSString*)certFile
aliasName:(NSString*)aliasName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
certName:(NSString*)certName
keyFile:(NSString*)keyFile
certFile:(NSString*)certFile
aliasName:(NSString*)aliasName;

@end

@interface SslDescribeCertsRequest:JDCloudRequest

/// 第几页，从1开始计数
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 每页显示的数目
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 域名，支持按照域名检索证书
@property (strong,nonatomic,nonnull)  NSString*  domainName;
/// 证书id/别名
@property (strong,nonatomic,nonnull)  NSString*  certIds;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
domainName:(NSString*)domainName
certIds:(NSString*)certIds;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
domainName:(NSString*)domainName
certIds:(NSString*)certIds;

@end

@interface SslDeleteCertsRequest:JDCloudRequest

/// 证书 Id
@property (strong,nonatomic,nonnull)  NSString*  certId;
-(id) initWithRegion:(NSString *)regionId
certId:(NSString*)certId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
certId:(NSString*)certId;

@end

@interface SslDescribeCertResult : NSObject
/// 证书Id
 @property (strong,nonatomic,nonnull)  NSString*  certId;
/// 证书名称
 @property (strong,nonatomic,nonnull)  NSString*  certName;
/// 绑定域名
 @property (strong,nonatomic,nonnull)  NSString*  commonName;
/// 证书类型
 @property (strong,nonatomic,nonnull)  NSString*  certType;
/// 签发者
 @property (strong,nonatomic,nonnull)  NSString*  issuer;
/// 开始时间
 @property (strong,nonatomic,nonnull)  NSString*  startTime;
/// 结束时间
 @property (strong,nonatomic,nonnull)  NSString*  endTime;
/// 域名
 @property (strong,nonatomic,nonnull)  NSArray<NSString*>*  dnsNames;
/// 对私钥文件使用sha256算法计算的摘要信息
 @property (strong,nonatomic,nonnull)  NSString*  digest;
/// 绑定信息的总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;
/// 证书关联信息
 @property (strong,nonatomic,nonnull)  NSArray<CertBindInfo*>*  usedBy;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCertId:(NSString*) certId

    certName:(NSString*)certName

    commonName:(NSString*)commonName

    certType:(NSString*)certType

    issuer:(NSString*)issuer

    startTime:(NSString*)startTime

    endTime:(NSString*)endTime

    dnsNames:(NSArray<NSString*>*)dnsNames

    digest:(NSString*)digest

    totalCount:(NSNumber*)totalCount

    usedBy:(NSArray<CertBindInfo*>*)usedBy;
@end

@interface SslDescribeCertResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property SslDescribeCertResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(SslDescribeCertResult*) result;
@end

@interface SslUploadCertResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property SslUploadCertResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(SslUploadCertResult*) result;
@end

@interface SslDownloadCertResult : NSObject
/// CertDesc
 @property (strong,nonatomic,nonnull)  NSArray<DownloadCertDesc*>*  certDesc;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCertDesc:(NSArray<DownloadCertDesc*>*) certDesc;
@end

@interface SslDownloadCertResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property SslDownloadCertResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(SslDownloadCertResult*) result;
@end

@interface SslDeleteCertsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property SslDeleteCertsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(SslDeleteCertsResult*) result;
@end

@interface SslUpdateCertNameResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property SslUpdateCertNameResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(SslUpdateCertNameResult*) result;
@end

@interface SslUpdateCertResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property SslUpdateCertResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(SslUpdateCertResult*) result;
@end

@interface SslDescribeCertsResult : NSObject
/// CertListDetails
 @property (strong,nonatomic,nonnull)  NSArray<CertListDetail*>*  certListDetails;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCertListDetails:(NSArray<CertListDetail*>*) certListDetails

    totalCount:(NSNumber*)totalCount;
@end

@interface SslDescribeCertsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property SslDescribeCertsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(SslDescribeCertsResult*) result;
@end

#endif /* SslApiModel_h */
